package game;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GameStartFrame extends JFrame {

    public GameStartFrame() {
        // 设置窗口属性
        setTitle("极限闪避60秒 - 开始游戏");
        setSize(400, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);  // 居中显示
        setLayout(new BorderLayout()); // 使用 BorderLayout

        // 创建面板，使用 GridLayout 放置按钮
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 1, 10, 10));  // 设置按钮垂直排列
        panel.setOpaque(true);  // 面板背景颜色为白色

        // 设置标签
        JLabel label = new JLabel("选择游戏难度：", JLabel.CENTER);
        label.setFont(new Font("Serif", Font.BOLD, 20));  // 改为常见字体 "Serif"
        label.setForeground(Color.BLACK);  // 字体颜色为黑色
        panel.add(label);

        // 创建按钮并设置样式
        JButton easyBtn = createButton("简单");
        JButton mediumBtn = createButton("中等");
        JButton hardBtn = createButton("困难");

        // 将按钮添加到面板
        panel.add(easyBtn);
        panel.add(mediumBtn);
        panel.add(hardBtn);

        // 将面板添加到窗口中
        add(panel, BorderLayout.CENTER);

        // 显示窗口
        setVisible(true);
    }

    // 创建按钮
    private JButton createButton(String text) {
        JButton button = new JButton(text);
        button.setFont(new Font("Serif", Font.PLAIN, 18));  // 改为常见字体 "Serif"
        button.setBackground(new Color(200, 200, 200));  // 按钮背景色为浅灰色
        button.setForeground(Color.BLACK);  // 按钮字体为黑色
        button.setFocusPainted(false);  // 去除点击时的焦点效果
        button.setBorderPainted(true);  // 保持按钮边框

        // 按钮点击事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int difficulty = getDifficultyFromText(text);
                startGame(difficulty);
            }
        });

        return button;
    }

    // 获取按钮对应的难度
    private int getDifficultyFromText(String text) {
        switch (text) {
            case "简单":
                return 1;
            case "中等":
                return 2;
            case "困难":
                return 3;
            default:
                return 1;
        }
    }

    // 启动游戏
    private void startGame(int difficulty) {
        new GameFrame(difficulty);  // 创建并启动游戏窗口
        this.dispose();  // 关闭选择界面
    }

    public static void main(String[] args) {
        new GameStartFrame();
    }
}
